package com.xs.designpattern;

import java.util.List;

/**
 * 这是一个组合节点，用于表示一个单词，由多个字母组成。
 * @author xs
 */
public class Word extends LetterComposite {
    /**
     * 构造函数可以接受一个字母列表作为参数，将字母作为子节点添加到单词中
     */
    public Word(List<Letter> letters) {
        letters.forEach(this::add);
    }

    /**
     * 构造函数可以接受多个字符作为参数，将字母作为子节点添加到单词中
     *
     * @param letters to include
     */
    public Word(char... letters) {
        for (char letter : letters) {
            this.add(new Letter(letter));
        }
    }

    /**
     * 重新方法用于在打印单词前打印一个空格
     */
    @Override
    protected void printThisBefore() {
        System.out.print(" ");
    }
}
